// Global vars
//var button_enviar;
var button_limpiar_vp;
var button_imprimir_movimiento_vp;
var button_imprimir_todo_vp;
var DataStore_vp;
var grid_vp;
var txt_descripcion_producto_vp;
var	txt_fecha_recepcion_vp;
var txt_nombrecompleto_vp;
var	txt_factura_nota_vp;
var var_id_cliente_vp=-1;
var store_producto_vp;
var	combo_producto_vp;
var txt_producto_vp;
var txt_telefono_vp;
var	txt_direccion_vp;
var DataStore_productos_vp;
var DataStore_clientes_vp;
var txt_buscar_producto_vp;
var	txt_buscar_cliente_vp;
var sum_vp=0;
var win_vp;
var total_vp=0;
var label_total_vp;
var label_cambio_vp;
var txt_total_cobrar_vp;
var txt_paga_con_vp;
var txt_paga_baucher;



var combo_tipo_movimiento_vp;
var store_tipo_movimiento_vp;
var productos_vp;
var myStore_vp;
var total_partidas_vp=0;

Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.util.*',
    'Ext.state.*',
	'Ext.window.MessageBox',
    'Ext.tip.*'
]);
	
	function limpiarpantalla()
	{
		txt_buscar_producto_vp.setValue("");
		txt_buscar_cliente_vp.setValue("");
		txt_telefono_vp.setValue("");
		txt_direccion_vp.setValue("");
		txt_nombrecompleto_vp.setValue("");
		txt_paga_con_vp.setValue("");
		var_id_cliente_vp=-1;
		DataStore_vp.removeAll();
		calculo_total();
	}
	
	function limpiarpantalla()
	{
		txt_buscar_producto_vp.setValue("");
		txt_buscar_cliente_vp.setValue("");
		txt_telefono_vp.setValue("");
		txt_direccion_vp.setValue("");
		txt_nombrecompleto_vp.setValue("");
		
		DataStore_vp.removeAll();
		calculo_total();
	}
	
Ext.onReady(function(){

	Ext.QuickTips.init();
	
	Ext.define('modelo_columnas_productos', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'Id_producto', type: 'int', mapping: 'Id_producto'},
			{name: 'nombre', type: 'string', mapping: 'nombre'},
			{name: 'descripcion', type: 'string', mapping: 'descripcion'},
			{name: 'Id_familia', type: 'int', mapping: 'Id_familia'},
			{name: 'codigo_barras', type: 'string', mapping: 'codigo_barras'},
			{name: 'existencia', type: 'float', mapping: 'existencia'},
			{name: 'precio_venta', type: 'float', mapping: 'precio_venta'}
		]
    });
	
	DataStore_productos_vp = new Ext.data.Store({
					model: 'modelo_columnas_productos',
					id: 'DataStore_productos_vp',
					proxy: {
								type: 'ajax',
								url : 'db_venta_producto.php',            
								actionMethods: {
											read: 'POST'
								},
								extraParams: {
											task: 'LISTING_PRODUCTOS',
								},
								reader: {
											root: 'results',
											totalProperty: 'total_vp',
											id: 'id'
								}
					}
	});
	
	DataStore_productos_vp.load({params: {start: 0, limit: 20}});
	
	Ext.define('modelo_columnas_clientes', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'Id_cliente', type: 'int', mapping: 'Id_cliente'},
			{name: 'nombrecompleto', type: 'string', mapping: 'nombrecompleto'},
            {name: 'nombre', type: 'string', mapping: 'nombre'},
			{name: 'ap_paterno', type: 'string', mapping: 'ap_paterno'},
			{name: 'ap_materno', type: 'string', mapping: 'ap_materno'},
			{name: 'direccion', type: 'string', mapping: 'direccion'},
			{name: 'email', type: 'string', mapping: 'email'},
			{name: 'cumple', type: 'string', mapping: 'cumple'},
			{name: 'edad', type: 'int', mapping: 'edad'},
			{name: 'telefono', type: 'string', mapping: 'telefono'},
		]
    });
	
	DataStore_clientes_vp = new Ext.data.Store({
					model: 'modelo_columnas_clientes',
					id: 'DataStore_clientes_vp',
					proxy: {
								type: 'ajax',
								url : 'db_venta_producto.php',            
								actionMethods: {
											read: 'POST'
								},
								extraParams: {
											task: 'LISTING_CLIENTES',
								},
								reader: {
											root: 'results',
											totalProperty: 'total_vp',
											id: 'id'
								}
					}
	});
	
	DataStore_clientes_vp.load({params: {start: 0, limit: 20}});
		
	Ext.define('modelo_columnas', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'cns', type: 'int', mapping: 'cns'},
            {name: 'nombre', type: 'string', mapping: 'nombre'},
			{name: 'Id_producto', type: 'int', mapping: 'Id_producto'},
            {name: 'precio', type: 'float', mapping: 'precio'},
            {name: 'precio_base', type: 'float', mapping: 'precio_base'},
            {name: 'cantidad', type: 'float', mapping: 'cantidad'},
			{name: 'total_vp', type: 'float', mapping: 'total_vp'},
			{name: 'descuento', type: 'float', mapping: 'descuento'}
		]
    });
	
	DataStore_vp = new Ext.data.Store({
					model: 'Producto',
					id: 'DataStore_vp',
					proxy: {
								type: 'ajax',
								url : 'db_venta_producto.php',            
								actionMethods: {
											read: 'POST'
								},
								extraParams: {
											task: '0',
								},
								reader: {
											root: 'results',
											totalProperty: 'total_vp',
											id: 'id'
								}
					}
	});
			

	function crearNuevoRegistro()
	{		
			if(isFormValid())
			{				
					Ext.Ajax.request({
									waitMsg: 'Espere...',
									url: 'db_venta_producto.php',
									params: {
												task: "CREATE",
												id_producto: 			var_id_producto,
												id_tm: 					combo_tipo_movimiento_vp.getValue(),
												id_proveedor:			combo_proveedor.getValue(),
												fecha_usuario:			txt_fecha_recepcion_vp.getRawValue(),
												comprobante:			txt_factura_nota_vp.getValue(),
												cantidad:				txt_nombrecompleto_vp.getValue(),
												precio_compra:			txt_telefono_vp.getValue(),
												precio_venta:			txt_direccion_vp.getValue(),
											}, 
										success: function(response)
										{
											var result=eval(response.responseText);
											switch(result)
											{
												case 1:
														Ext.MessageBox.alert('Registro OK','Se creo el producto');
														break;
												default:
														Ext.MessageBox.alert('Error','Error en la BD');
														break;									 
											}
										},
									failure: function(response)
									{			  
										var result=response.responseText;
										Ext.MessageBox.alert('Error','No se pudo conectar a la base de datos. Intenta nuevamente');
									}
					});				
			}
			else
			{
				Ext.MessageBox.alert('Error','Error en los datos');
			}
	}
	
			
	function isFormValid()
	{
		return(	txt_fecha_recepcion_vp.isValid() && 
				txt_descripcion_producto_vp.isValid());
	}
	

	button_enviar = new Ext.Button({width: 100,text: 'Crear',tooltip: 'Crear',handler:crearNuevoRegistro}); 
	button_limpiar_vp = new Ext.Button({width: 100,text: 'Limpiar',tooltip: 'Limpiar pantalla',handler:limpiarpantalla});	
  	
	txt_nombrecompleto_vp = new Ext.form.TextField
					({
							id: 			'txt_nombrecompleto_vp',
							name:			'txt_nombrecompleto_vp',
							fieldLabel:		'Nombre',
							minLength: 		1,
							selectOnFocus: 	true,
							blankText: 		'Nombre',
							allowBlank: 	false,
							labelWidth:		50,
							tabIndex:		1,
					});	
						
		
	txt_direccion_vp = new Ext.form.TextField
					({
							id: 			'txt_direccion_vp',
							name:			'txt_direccion_vp',
							fieldLabel:		'Direccion',
							minLength: 		1,
							selectOnFocus: 	true,
							blankText: 		'Direccion',
							allowBlank: 	false,
							labelWidth:		50,
							tabIndex:		1,
					});	
						
	
	
	txt_telefono_vp = new Ext.form.TextField
					({
							id: 			'txt_telefono_vp',
							name:			'txt_telefono_vp',
							fieldLabel:		'Telefono',
							minLength: 		1,
							selectOnFocus: 	true,
							blankText: 		'Cantidad a ingresar',
							allowBlank: 	false,
							labelWidth:		50,
							tabIndex:		1,
					});	
					
	txt_buscar_producto_vp = new Ext.form.TextField
					({
							id: 			'txt_buscar_producto_vp',
							name:			'txt_buscar_producto_vp',
							fieldLabel:		'Buscar',
							allowBlank: 	true,
							width: 			300,
							enableKeyEvents: true,
							listeners: {
										keyup: function(t,e){																	
																	DataStore_productos_vp.load({params:{nombre:txt_buscar_producto_vp.getValue(),start: 0, limit: 20}});
															}
										}
								   
					});
					
	txt_buscar_cliente_vp = new Ext.form.TextField
					({
							id: 			'txt_buscar_cliente_vp',
							name:			'txt_buscar_cliente_vp',
							fieldLabel:		'Buscar',
							allowBlank: 	true,
							width: 			300,
							enableKeyEvents: true,
							listeners: {
										keyup: function(t,e){
																DataStore_clientes_vp.load({params:{nombre:txt_buscar_cliente_vp.getValue(),start: 0, limit: 20}});
															}
										}
					});					
	});
	
	
	
	
  
	